657cf240228e45e499169b96181c7619aaa505a6,java/java-impl/src/com/intellij/refactoring/typeMigration/TypeMigrationLabeler.java,TypeMigrationLabeler,getElementType,#PsiElement#,450

Before Change


        final PsiElement parent = resolved.getParent();
        LOG.assertTrue(parent instanceof PsiJavaCodeReferenceElement);
        final PsiClass psiClass = (PsiClass)((PsiJavaCodeReferenceElement)parent).resolve();
        return JavaPsiFacade.getElementFactory(parent.getProject()).createType(psiClass, TypeConversionUtil.getSuperClassSubstitutor(psiClass, PsiTreeUtil.getParentOfType(parent,
                                                                                                                                     PsiClass.class),
                                                                                                         PsiSubstitutor.EMPTY));
      } else if (resolved instanceof PsiClass) {
        return JavaPsiFacade.getElementFactory(resolved.getProject()).createType((PsiClass)resolved, PsiSubstitutor.EMPTY);

After Change


        while (parent != null) {
          LOG.assertTrue(parent instanceof PsiJavaCodeReferenceElement);
          final PsiClass psiClass = (PsiClass)((PsiJavaCodeReferenceElement)parent).resolve();
          final PsiClass containingClass = PsiTreeUtil.getParentOfType(parent, PsiClass.class);
          if (psiClass != null && containingClass != null) {
           final PsiSubstitutor classSubstitutor = TypeConversionUtil.getClassSubstitutor(psiClass, containingClass, PsiSubstitutor.EMPTY);
           if (classSubstitutor != null) {
             return JavaPsiFacade.getElementFactory(parent.getProject()).createType(psiClass, classSubstitutor);
           }
          }